package ua.lviv.franko.mlsFunctions.threeDimension.weightFunctions;

public interface IWeightFunction3D {

	/**
	 * 
	 * @param x
	 * @param y
	 * @param z
	 * @param xi
	 * @param yi
	 * @param zi
	 * @param rho
	 * @return
	 */
	public double calculate(double x, double y, double z, double xi, double yi, double zi, double rho);

	/**
	 * 
	 * @param x
	 * @param y
	 * @param z
	 * @param xi
	 * @param yi
	 * @param zi
	 * @param rho
	 * @return
	 */
	public double calculateDerivatyX(double x, double y, double z, double xi, double yi, double zi, double rho);

	/**
	 * 
	 * @param x
	 * @param y
	 * @param z
	 * @param xi
	 * @param yi
	 * @param zi
	 * @param rho
	 * @return
	 */
	public double calculateDerivatyY(double x, double y, double z, double xi, double yi, double zi, double rho);

	/**
	 * 
	 * @param x
	 * @param y
	 * @param z
	 * @param xi
	 * @param yi
	 * @param zi
	 * @param rho
	 * @return
	 */
	public double calculateDerivatyZ(double x, double y, double z, double xi, double yi, double zi, double rho);

}
